With advancements in the field of telecommunications today, it is quite easy to communicate media remotely over a network from a media device that includes one or more media sources such as cameras, recorders, media files, and the like, to interested parties. For example, public safety agencies are increasingly equipping public safety vehicles with cameras and digital recorders to capture activities in and around the vehicle; and video cameras (such as Internet Protocol (IP) cameras mounted on tripods and connected to a wireless transceiver) are increasingly being deployed at emergency scenes. Using wireless broadband systems, designated officials (such as dispatchers or incident commanders) can, for instance, have a remote view of a situation from one or more mobile cameras to make faster and more effective decisions to handle the situation.
In this and other similar situations, multiple clients may wish to simultaneously access the same media source. However, there are shortcomings associated with the known solutions that enable multiple clients to simultaneously access a media source. The following described solutions apply to video sources such as cameras but could apply to other types of media sources. In accordance with a first solution, each viewer of the video establishes an independent viewing session with a media device that contains a camera; for instance, each user wishing to view the video, separately pulls up a web page and accesses the video from the camera via controls issued through a web server on the camera. When configured for unicast operation, the camera sources an independent video stream to each of the viewers resulting in multiple copies of the video being sent on an uplink connection between the camera and the web server. This ultimately limits the number of users that can view the video at the same time, which in the event of an emergency can be a critical limitation.
Some cameras also support multicast operation, which results in a single copy of the video being simultaneously multicast from a communication server to all clients having joined the multicast group. However, many wireless networks do not support multicast or, if they do, they do not support IETF (Internet Engineering Task Force) standard multicast. In addition, multicast suffers from reliability problems when used on a wireless downlink between the communication server and the users' devices because there is no feedback or retry mechanism to deal with lost packets. Also, users need to be informed of the particular multicast groups that need to be joined; and changing the media source requires changing a multicast group.
Another existing solution is to set up a group call every time there are multiple users involved. This can be problematic since the users need to know beforehand that they wish to share the uplink connection with other users, and accordingly, set up a group call. Additionally, it means that the media source has to be joined to all groups (requiring an explicit affiliation step) in order to be able to participate in these group sessions. This approach is not very flexible since it: requires the users' coordination; makes it difficult to change media sources; and can lead to scalability and performance problems. Similarly, in video conferencing, a multi-point controller is used to distribute sourced video to conference participants. However, this also requires pre-arranged conference calls that all participants must explicitly join.
Yet another existing solution is a chat model, wherein there is a chat session per camera, and clients join the chat session to view the video of a particular camera. This approach creates a lot of session signaling overhead since each camera requires a different chat session, and a user desiring to switch between cameras has to signal to leave the session with the first camera and then signal to join the session with the second camera. This can result in significant delays when switching between cameras as the new session is established, which can result in a poor user experience as Quality of Service (QoS) is re-established after each camera switch. This approach also creates a large amount of overhead in the communication server since a chat session must exist for every media source in the system (potentially thousands). In addition, this model does not work well when a media device has more media sources than its ability to stream from those sources because the policy for selecting which clients would be allocated access to the limited resources has to be applied across sessions and might, therefore, result in a cascade of re-INVITES as preemption occurs.
Therefore, it is desirable to have a solution that makes efficient use of the network resources when multiple clients access the same media source, without requiring clients to coordinate their sessions.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve understanding of various embodiments. In addition, the description and drawings do not necessarily require the order illustrated. It will be further appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. Apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the various embodiments so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein. Thus, it will be appreciated that for simplicity and clarity of illustration, common and well-understood elements that are useful or necessary in a commercially feasible embodiment may not be depicted in order to facilitate a less obstructed view of these various embodiments.